데이터 분석과 데이터 과학 (Data Analysis and Data Science)
데이터 분석과 데이터 과학은 비슷한 용어인데 명확하게 구분할 수 있게 정의된 것은 없다. 그리고 둘 사이의 경계나 구분이 점점 더 모호해지고 있다. 둘의 차이는 실제로는 역할과 목표, 일의 범위에 차이가 있는데 절대적인 규칙이 있지는 않다. 최근까지 정리된 것으로 데이터 분석은 데이터 과학에 포함되는 것으로 본다.
데이터 분석 (Data Analysis)
데이터 분석은 가지고 있는 데이터 또는 “주어진 데이터”에서 의미 있는 정보를 찾아내고 문제를 해결하거나 의사결정에 도움을 주는 활동을 말한다. 예를 들어 매출 데이터를 분석해서 어떤 상품이 잘 팔리는지, 계절별로 판매량이 어떻게 변하는지, 쇼핑몰에서 어떤 상품이 더 잘팔리는 지 같은 것을 알아내는 것이 데이터 분석이다. 주로 통계(집계, 기초통계), 데이터 시각화, 간단한 모델링 기법을 사용한다. “주어진 데이터”로 하는 것이기 때문에 가지고 있지 않은 데이터에 대해서 추측으로 얘기하는 것이나 매우 일부 데이터만 분석해서 결과를 얘기하는 것은 데이터 분석이라고 하기 어렵다. “그럴지도 모른다”, “그럴 것이다”라고 추측성으로 생각하는 것을 가설이라고 하고 그런 것을 데이터를 분석해서 면밀하게 확인하는 것이 통계 분석 또는 데이터 분석이다. 앞서 잠깐 언급한 적이 있지만 데이터 분석에는 통계 분석이 포함되는 것으로 분류하지만 최근에는 중요하게 구분하지는 않는다.
데이터 과학 (Data Science)
데이터 과학은 데이터 분석보다 더 넓은 개념이다. 데이터 과학자는 데이터를 수집하고, 정제(전처리)하고, 분석할 뿐만 아니라 인공지능(AI)이나 기계학습(machine learning, 머신러닝) 같은 고급 기법을 이용해 미래를 예측하거나 자동화된 의사결정 시스템을 만든다. 패턴 인식을 하고 추천시스템이나 판별시스템, 분류시스템을 만드는 것이 포함된다. 데이터 과학은 소프트웨어 개발, 수학, 통계, 도메인 지식 등 다양한 분야의 지식을 종합적으로 활용한다. 데이터 과학는 데이터 분석을 대부분 포함한다고 보고 있다 따라서 데이터 과학은 통계의 많은 부분을 포함하고 있다고 보는 추세다.
데이터 과학의 탄생
데이터 과학(Data Science)이라는 1960년에 생겼지만 급성장한 것은 빅데이터가 본격적으로 등장한 2000년대 중후이다. 데이터 과학은 빅데이터과 관련이 깊다.
데이터 과학이 생긴 이유
데이터의 폭발적 증가와 빅데이터
빅데이터가 대두된 것은 웹서비스나 온라인 회사들이 그동안 방치했거나 지워고 버렸던 로그 데이터를 쌓아서 가치를 찾아낼 수 있다는 것을 알기 시작하면서부터이다. 데이터 분석의 결과물인 특이한 사실이나 기계학습 모델을 서비스에 적용해서 부가 수익을 얻는 것이 가능해졌고 초거대 IT기업인 빅테크 회사들은 그런 것을 빨리 체계화하고 적용하고 싶어했지만 대량의 로그 데이터는 기존에 통계학에서 다루던 데이터 보다도 데이터 양이 너무 많아 컴퓨터 기술로도 통계 기술로도 감당하기 어려웠다. 결국 데이터 과학은 데이터에서 가치를 찾고 활용하는 것을 넓은 범위에서 말하는 것이 었지만 빅데이터를 하는 것처럼 오인되었기도 했다.
- 기존 분석 방법의 한계
단순한 통계 분석이나 엑셀, SQL만으로는 대용량 데이터(빅데이터)에서 의미 있는 패턴을 찾거나 예측 모델을 만드는 것이 어려웠다. 통계적 방법보다는 데이터 마이닝 기술을 더 사용하게 되었고 노트북이나 PC, 서버 1대에서 분석을 할 수 없게 되면서 분산 컴퓨팅(그리드 컴퓨팅)이라고 부르는 수많은 서버를 연결해서 데이터를 처리하고 분석하는 기술이 필요했다. 이런 것들이 전에는 없었던 것은 아니지만 더 빠르고 쉽고 편하게 할 수 있는 픐랫폼을 원했고 그런 것들이 지금 우리가 알고 있는 빅데이터 관련 플랠폼들이다.
- 머신러닝과 인공지능의 발전
2000년대 들어 컴퓨터 성능이 크게 향상되고 머신러닝/딥러닝 등 인공지능 기술이 다시 발전하면서 데이터를 자동으로 분석하고 예측하는 새로운 방법이 많이 등장했다.
- 비즈니스와 사회의 요구
기업과 사회는 데이터에서 인사이트를 얻어 경쟁력을 높이고, 새로운 가치를 창출하고자 했습니다. 이에 따라 데이터 분석, 통계, 컴퓨터공학, 도메인 지식을 융합한 새로운 역할이 필요해졌습니다.
데이터 과학의 역사
-
1960~1970년대
'데이터 과학'이라는 용어가 통계학자들 사이에서 논의되기 시작했으며 통계학의 한 분야로만 여겨졌음 -
1990년대
데이터 마이닝(Data Mining)이라는 개념이 등장하여 대용량 데이터에서 패턴을 찾는 기술이 발전했음 -
2000년대 초반
2001년, 미국의 통계학자 윌리엄 S. 클리블랜드(William S. Cleveland)가 "데이터 과학"을 통계학, 컴퓨터공학, 데이터베이스, 시각화, 머신러닝 등 여러 분야를 통합한 새로운 학문으로 제안 -
2008년
DJ Patil과 제프 해머바커(Jeff Hammerbacher)가 실리콘밸리에서 '데이터 과학자(Data Scientist)'라는 직업명을 처음 사용했습니다. 이후 구글, 페이스북, 링크드인 등 IT 기업에서 데이터 과학자라는 직업이 빠르게 확산 -
2010년대 이후
빅데이터, 인공지능, 클라우드 컴퓨팅의 발전과 함께 데이터 과학이 본격적으로 각광받기 시작하고 다양한 산업에서 데이터 과학자가 핵심 역할을 하게 되었으며 대학과 연구기관에서도 데이터 과학 관련 학과와 연구가 활발히 이루어짐 -
데이터 분석: 과거와 현재의 데이터를 이해하고 설명하고 틀리지 않은 결정을 하도록 도움
-
데이터 과학: 데이터 분석, 예측, 자동화, 새로운 가치 창출 외 더 넓고 많은 것
데이터 과학은 데이터의 양과 복잡성이 폭발적으로 증가해서 만들어진 극단적인 데이터 환경에서 데이터를 효과적, 효율적으로 분석하고 활용하기 위한 새로운 기술과 역할이 필요해지면서 등장한 융합 분야이다. 데이터 분석도 데이터 과학에 포함되며 많은 사람들이 데이터 분석가도 데이터 과학자라고 할 수 있는지 궁금해 하는데 데이터 분석가도 데이터 과학자이다. 단지 데이터 과학자에게는 기계학습과 프로그래밍, 대용량 데이터 처리 방법에 대한 지식을 더 많이 요구한다.
데이터 엔지니어링 (Data Engineering)
데이터 과학과 함께 데이터 엔지니어링을 설명해야 할 수 있다. 데이터 분석에서 탐색적 데이터 분석, 가설 검정 같은 통계적 데이터 분석이나 기계학습 모델을 만들기 위해서는 데이터 입수, 처리와 같은 일을 필수로 해야 하지만 이런 일을 하기 위해서 서버나 데이터베이스 시스템을 잘 알아야 하고 프로그래밍 능력과 여러 플랫폼 활용능력이 필요하다. 데이터 분석가나 데이터 과학자가 하기에는 작업량이 많거나 전문화 또는 고도화된 능력이 필요하고 전담해서 일하는 사람이 필요한데 그런 일을 데이터 엔지니어링이라고 한다. 데이터 엔지니어링을 하는 사람을 데이터 엔지니어(Data Engineer)라고 하는데 데이터 과학에 데에터 엔지니어링도 포함된다.
((프롬프트)): 데이터 엔지니어링에 대해서 쉽고 간단하게 설명해주세요 ((AI챗봇 답)): 데이터 엔지니어링은 데이터를 수집, 저장, 처리하여 분석할 수 있는 형태로 만드는 모든 과정을 말합니다.
쉽게 설명하자면:
- 데이터 수집: 다양한 소스(웹사이트, 앱, 센서, 데이터베이스 등)에서 데이터를 가져오는 작업
- 데이터 저장: 수집한 데이터를 데이터베이스나 데이터 웨어하우스에 안전하게 보관하는 작업
- 데이터 처리: 원시 데이터를 정제하고, 변환하여 분석하기 좋은 형태로 만드는 작업
- 데이터 파이프라인 구축: 위 과정들을 자동화하여 지속적으로 데이터가 흐를 수 있게 하는 시스템 구축
데이터 엔지니어는 마치 수도관을 설치하는 배관공과 같습니다. 데이터 분석가나 과학자가 수도꼭지만 틀면 깨끗한 물(정제된 데이터)이 나올 수 있도록, 뒤에서 모든 파이프(데이터 시스템)를 설계하고 유지보수하는 역할을 합니다.
데이터 엔지니어링은 데이터 처리 일을 주로 말하는데 데이터 엔지니어링도 넓은 의미에서 데이터 분석에 포함된다. 데이터 엔지니어는 시스템 엔지니어와 데이터 분석가, 데이터 과학자 사이에서 일하는 경우가 많으며 데이터 분석과 통계에 대해 깊지는 않아도 지식이 있어야 일하는데 무리가 없다. 데이터 시스템에 필요한 데이터를 쌓고 정제하고 데이터 분석가에게 전달하거나 데이터 분석가가 이용하는 플랫폼을 구축하는 일을 주로 맡아서 한다. 그래서 데이터 엔지니어링에 필요한 능력은 데이터 분석가보다는 더 엔지니어링쪽과 관련된 것이 많다.
((프롬프트)): 데이터 엔지니어링에 필요한 능력을 쉽게 설명해주세요 ((AI챗봇 답)): 데이터 엔지니어링에 필요한 능력은 다음과 같이 쉽게 설명할 수 있습니다.
- 프로그래밍 능력: 데이터를 자동으로 처리하고 옮기기 위해 쉘 스크립트, 파이썬, 자바, SQL 같은 언어를 사용할 줄 알아야 합니다.
- 데이터베이스 이해: 데이터를 저장하고 꺼내는 데이터베이스(예: MySQL, PostgreSQL, MongoDB 등)를 다룰 수 있어야 합니다.
- 데이터 파이프라인 구축: 데이터를 수집하고, 저장하고, 가공하는 과정을 자동화하는 시스템(파이프라인)을 만들 수 있어야 합니다.
- 빅데이터 도구 사용: 대용량 데이터를 처리하기 위해 하둡, 스파크 같은 빅데이터 도구를 사용할 줄 알면 좋습니다.
- 클라우드 활용 능력: AWS, GCP, Azure 같은 클라우드 서비스를 이용해 데이터를 저장하고 처리할 수 있으면 도움이 됩니다.
- 문제 해결 능력: 데이터가 잘못 들어오거나 시스템에 문제가 생겼을 때 원인을 찾고 해결할 수 있어야 합니다.
- 협업 및 소통 능력: 데이터 분석가, 과학자, 개발자 등과 함께 일하며 요구사항을 잘 이해하고 소통할 수 있어야 합니다.
쉽게 말해, 데이터 엔지니어는 데이터를 다루는 기술(프로그래밍, 데이터베이스, 빅데이터 도구 등)과 문제를 해결하는 능력, 그리고 다른 사람들과 잘 협업하는 능력이 필요합니다.
데이터 엔지니어링은 데이터 분석가보다 데이터 관련 시스템의 더 낮은 단계의 하부 구조까지 이해하고 있어야 하며, 시스템 운영 및 활용을 더 많이, 더 잘해야 한다. 데이터 엔지니어링은 넓은 의미에서는 데이터 분석에 포함되지만 데이터 분석에서 기피되는 일이다. 시행착오를 해야하는 일이 많고 실수가 있으면 분석 결과가 잘못될 수 있고 잦은 재시도로 인한 시간 낭비가 많아져 진행 중인 일에 큰 지장을 초래하기 때문이다. 데이터 분석가가 데이터 엔지니어와 함께 일하게 된다면 데이터 엔지니어링에 대해서도 이해하고 있어야 하며 소속된 조직에서는 일이 어떻게 진행되어 왔는지, 어떤 문제가 있었는지, 어떤 환경적 문제나 특별한 문제가 있는지도 알아두고 이해할 필요가 있다.